/*
Copyright 2011 Mary Suárez Machado

Este programa es de software libre: usted puede redistribuirlo y/o modificarlo según los términos de la Licencia de Gran pública de GNU como publicado por la Fundación de Software Libre, versión 3 de la Licencia, (o en su opción) cualquier versión posterior.

 Este programa es distribuido en la esperanza que será útil, pero SIN CUALQUIER GARANTÍA; sin aún la garantía implícita de VALOR COMERCIAL O SALUD PARA UN OBJETIVO PARTICULAR. Mirar la Licencia de Gran pública de GNU para más detalles.
*/


#ifndef _CRC_H_
#define _CRC_H_

 /**
 *@file crc.h
 *@brief Interfaz para calcular el crc de un texto
 *
 */

 /**
 * \class CRC
 *
 * \brief Modulo que representa el calculo del crc de un texto
 *         
 * \author Mary Carmen Suárez 
 *
 */

	class CRC
	{	private:
			unsigned int crc;
			unsigned long tabla[256];
		public:
			/*
			@brief Constructor por defecto
			*/
			CRC();
			/*
			@brief Actualiza el valor de los bytes de paridad considerando un nuevo byte del mensaje
			@param byte, nuevo byte del mensaje
			*/
			void Paridad_AddByte (unsigned char byte);
			/*
			@return Devuelve el valor de los bytes de paridad como un dato de tipo unsigned int
			*/
			unsigned int Paridad_Get () const;
	};
#endif
